<?php

function set_usuario($usuario) {
    
    $_SESSION['admin'] = $usuario;
   
}


function set_contratos(){
    
    $contratos = 
 get_instance()->db
                        ->where(array('pessoasusuarios_usuario' => $_SESSION['admin']->usuarios_id))
                        ->join('pessoas', 'pessoasusuarios_pessoa = pessoas_id')
                        ->join('grupospessoas', 'grupospessoas_pessoa = pessoas_id')
                        ->join('grupos', 'grupospessoas_grupo = grupos_id')
                        ->join('contratos', 'grupos_idcontrato = contratos_id')
                        ->join('contratosistema', 'contratosistema_contrato = contratos_id')
                        ->join('sistemas', 'contratosistema_sistema = sistemas_id')
                        ->group_by('grupos_idcontrato')
                        ->select('grupospessoas.*, contratos.*, sistemas.*')
                        ->get('pessoasusuarios')->row();
        
                        
    
        $_SESSION['contrato'] = $contratos;
    
}

class Entrar extends CI_Controller {

    public function index() {
        //checar se o usuario esta logado
        
        
        $this->check_log("admin", URL_ADMINISTRACAO);


        $data = array();

        if (isset($_POST['entrar1'])){
                
                $this->login_usuario($this->input->post('entrar1', true), $this->input->post('entrar2', true));

        }

        
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    public function index_loj() {
        $this->check_log("lojista_log", URL_LOJISTA);

        $data = array();

        if (!$this->input->post('entrar1')) {
            $data['error'] = 'Informe o usuário';
        }
        if (!$this->input->post('entrar2')) {
            $data['error'] = 'Informe a senha';
        }

        $this->login_lojista($this->input->post('entrar1', true), $this->input->post('entrar2', true));

        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    private function check_log($name_session, $url_redirect) {
        if (isset($_SESSION[$name_session]) && $_SESSION[$name_session]) {
            redirect($url_redirect);
            exit;
        } else
            return false;
    }
    
    public function contratos($login, $senha) {
        echo "aaaaaaa";exit;
        
    }

    private function login_usuario($login, $senha) {
        
//        echo "aaa";exit;
        //login da Fabrica
        $usuario = $this->db
                        ->where(array('usuarios_username' => $login, 'usuarios_senha' => sha1($senha)))
                        ->join('tipousuarios', 'usuarios_tipo = tipousuarios_id')
                        ->get('usuarios')->row();
        
        
        
        
        
        
//         $empresas = 
//                $this->db
//                        ->where(array('pessoasusuarios_usuario' => $usuario - usuarios_id))
//                        ->join('pessoas', 'pessoasusuarios_pessoa = pessoas_id')
//                        ->join('grupospessoas', 'grupospessoas_pessoa = pessoas_id')
//                        ->join('grupos', 'grupospessoas_grupo = grupos_id')
//                        ->get('pessoasususarios')->result();
        
        
        if (count($usuario)) {
            set_usuario($usuario);
        }
        
        if($usuario->usuarios_tipo != 1){
            set_contratos();
            redirect(base_url() . "../adm/index.php");
             exit;
        }else{
            redirect(base_url() . "../adm/index.php/usuario/contrato");
            exit;
        }
        
        

        //Fim login da Fabrica		
    }


   

    public function alterar_senha() {



        //Se for lojista
        if (isset($_GET['loj']) && $_GET['loj'] == 'bJHCFs54vHCCg') {
            $token = $this->db
                            ->where('tk_token', $_GET['token'])
                            ->where('tk_usado', 0)
                            ->join('lojistas', 'lj_id=tk_ni')
                            ->get('token_senha')->result();

            if ($this->input->post('senha') && count($token) > 0) {

                $this->db->where('lj_id', $token[0]->tk_ni)
                        ->update('lojistas', array(
                        'lj_senha' => sha1($this->input->post('senha'))
                ));

                $this->db->where('tk_ni', $token[0]->tk_ni)
                        ->update('token_senha', array(
                        'tk_usado' => 1
                ));
                redirect(base_url() . "index.php/entrar/alterar_senha_mensagem");
            }

            //Se for distribuidor
        } else {
            $token = $this->db
                            ->where('tk_token', $_GET['token'])
                            ->where('tk_usado', 0)
                            ->join('distribuidores', 'di_id=tk_ni')
                            ->get('token_senha')->result();

            if ($this->input->post('senha')) {
                $this->db->where('di_id', $token[0]->tk_ni)
                        ->update('distribuidores', array(
                        'di_senha' => sha1($this->input->post('senha'))
                ));
                $this->db->where('tk_ni', $token[0]->tk_ni)
                        ->update('token_senha', array(
                        'tk_usado' => 1
                ));
                redirect(base_url() . "index.php/entrar/alterar_senha_mensagem");
            }
        }

        if (count($token)) {
            $this->load->view(strtolower(__CLASS__) .
                    "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
        } else {
            redirect(base_url() . "index.php/entrar/");
        }
    }

    public function alterar_senha_mensagem() {
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
    }

    public function solicitar_alterar_senha() {
        $data = array();
        if (isset($_POST['ni'])) {
            $di = $this->db->where('di_usuario', $_POST['ni'])->get('distribuidores')->row();

            //Verifica se não é um lojista
            if (count($di) == 0) {
                $di = $this->db->where('lj_usuario', $_POST['ni'])->get('lojistas')->row();
                $di->di_id = $di->lj_id;
                $di->di_nome = $di->lj_nome;
                $di->di_email = $di->lj_email;
            }

            if ($di) {

                $this->load->helper('my_email');

                $token = base64_encode(round(1111, 9999) . date('H:i:s') . $di->di_id);

                $this->db->insert('token_senha', array('tk_ni' => $di->di_id, 'tk_token' => $token));

                $body = layout_email("
	
					<p>Olá <strong>" . $di->di_nome . "</strong><br>
					  <br>
					  Foi solicitado em nosso sistema um pedido de recuperação de senha.<br>
					  <br>
					  Caso queira realmente alterar sua senha no sistema clique no link abaixo<br>
					  <br>
					  <a href='" . base_url("index.php/entrar/alterar_senha?token={$token}") . "'>
					  " . base_url("index.php/entrar/alterar_senha?token={$token}&loj=bJHCFs54vHCCg") . "
					  </a>
					<br />
					<br />
					");


                enviar_notificacao($di->di_email, utf8_decode('Recuperar senha - ' . get_loja()->fa_nome), $body);

                redirect(base_url() . "index.php/entrar/mudar_senha_mensagem/{$di->di_id}");
            } else {
                $data['error'] = 'NI não é válido.';
            }
        }


        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    public function mudar_senha_mensagem() {
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
    }

}
